home *** CD-ROM | disk | FTP | other *** search
- Na wstêpie: poprzednie maile tego w±tku z listy WFMH-AmigaPL dostêpne s± pod
- http://amiga.com.pl/lists/
-
- Dnia 30-Lis-98, Darek Smietana rzek³ co nastêpuje:
-
- > Fragment kodu zrodlowego testu wyslalem na liste, aby uswiadomic tym,
- > ktorzy znaja sie cokolwiek na asemblerze, jak banalny i chodzacy na kazdej
- > karcie 68040/060 program (040test), wywraca sie na niektorych
- egzemplarzach
- > kart PPC. A tu kolejny programista szuka dziury w calym.
-
- Ca³ym jak ca³ym. Po raz n-ty -- Commodore przestrzega³o przed u¿ywaniem
- move16 w Amidze. G³upio-m±dre odzywki o czerpaniu wiedzy z manuali od A500
- s± o tyle nie na miejscu, ¿e za czasów A500 o 68040 (a wiêc i o move16)
- nikt jeszcze nie s³ysza³. Nie ta dekada.
-
- > Wyjasnie pewna wlasciwosc instrukcji move16: Instrukcja ta przesyla 4
- longi
- > pomiedzy obszarami adresowanymi w taki sposob, ze pierwszy z 4 kolejnych
- > adresow zrodla i celu ma najnizsze 4 bity adresowe rowne zeru.
- > To co ustawisz na 2 i 3 bicie adresu zrodla i celu nie ma najmniejszego
- > znaczenia dla sposobu wykonania sie tej instrukcji, jest ignorowane przez
- > procesor, ktory zawsze dla pierwszego longa zamienia te bity na niskie
- > stany linii adresowych. Dla nastepnych 3 longow procesor automatycznie
- > inkrementuje stan tych linii adresowych. Oznacza to oczywiscie, ze w
- > przypadku tej instrukcji zawartosc rejestrow adresowych nie musi byc
- zgodna
- > z adresem danych.
-
- Mia³em wra¿enie, ¿e to w³a¶nie opisywa³ fragment manuala od 040, który
- postn±³em -- nowinka zatem ¿adna. Zechciej jednak zwróciæ uwagê, ¿e w Twoim
- te¶cie, w zale¿no¶ci od pocz±tkowej warto¶ci zmiennej BUFORF rejestry
- adresowe podczas dostêpu do FAST-u bêd± albo nie bêd± zgodne z adresem
- danych. To w³a¶nie dlatego pyta³em, czy tak samo sprytnie jest to
- rozwi±zane we w³a¶ciwym sterowniku, bo jak siê zapewne domy¶lasz jest to
- dosyæ istotne. Szkoda, ¿e ciachn±³e¶ nie odpowiadaj±c.
-
-
- > W programie tym adresy dla instrukcji move16 sa, wbrew temu co sadzisz,
- > przygotowane prawidlowo. To co wziales za "przyalignowanie" w tym tescie
- > jest akurat fragmentem kodu potrzebnego do czegos zupelnie innego.
- ^^^^^^^^^^^^^^^^^^^^^^ ;)
- > (Wysylajac na liste kod zrodlowy napisalem bardzo wyraznie, ze jest to
- > uproszczona wersja bardziej rozbudowanego programu, i w kodzie zostalo
- > troche rzeczy z tego programu.)
-
- MOVE.L BUFORC,D0
- ADD.L #$10,D0
- AND.L #$FFFFFFF0,D0
- MOVE.L D0,BUFORCM
-
- Mo¿e rozpiszemy konkurs, có¿ to takiego? Player do modu³ów? Engine do Quake?
- No sam nie wiem...
-
- Po co udawaæ greka, skoro bez tego kawa³ka kodu istnia³aby spora szansa, ¿e
- wyleziesz do³em poza bufor? Wiêc do czego on s³u¿y? Razem dzieci: do
- a-li-gno-wa-nia.
-
-
- > Napisales, ze w 50% wykonan tego testu adres jest "alignowany" wg. Ciebie
- > niewlasciwie, a potem napisales, ze ten test nie robi u Ciebie krzakow.
- > Nie zauwazyles, ze gdyby to "alignowanie" mialo dzialac tak jak sadzisz,
- > to ten test by u Ciebie w 50% przypadkow nie przechodzil?
-
- Jako konstruktor hardware powieniene¶ wiedzieæ, ¿e opieranie siê na
- nieudokumentowanych tudzie¿ zakazanych praktykach nie zawsze powoduje
- stuprocentowe niedzia³anie. Ja mam 060, mowa by³a o 040 i to starych. To co
- dzia³a u mnie, u kogo¶ mo¿e byæ powodem problemów.
-
-
- Czas poj±æ, ¿e nie jest niczyim celem wykazanie z³ych intencji Twoich czy
- Elboxu. Ale je¶li postujesz ¼ród³o, które z pewnych wzglêdów wydaje siê
- mocno podejrzane (dziwny align, brak nopa), racz przyj±æ krytykê powa¿nie i
- powa¿nie odpowiedzieæ -- byæ mo¿e rzeczywi¶cie masz racjê i rzeczy, które
- powinny dzia³aæ, nie dzia³aj±. Mo¿e wypracowaliby¶my wtedy razem jakie¶
- lepsze rozwi±zanie ni¿ RESCUE MODE powoduj±cy tak znaczny spadek
- wydajno¶ci.
-
- Ale mo¿e te¿ byæ tak, ¿e co¶ przeoczy(³e¶/li¶cie) i jednak wina jest po
- Waszej stronie? Naprawdê my¶lisz, ¿e jeste¶ nieomylny?
-
- Parê pytañ, w ramach konstruktywnej wspó³pracy:
-
- - jak jest teraz rozwi±zany RESCUE MODE?
- - czy próbowali¶cie poprzedziæ pierwsze move16 w pêtli instrukcj± NOP? Po
- takiej poprawce wprowadzonej przez Adama "test" zacz±³ chodziæ jak nale¿y.
- - czy robili¶cie testy prêdko¶ciowe: move16 vs. zwyk³e move + sfreezowany
- cache do danych?
-
-
- Pozdrowienia,
- Mi³ek
- --
- mailto:thorgal@amiga.com.pl | "Man in the Moon and other weird things" -
- http://wfmh.org.pl/~thorgal/ | see it at http://wfmh.org.pl/~thorgal/Moon/
-
-
-